/**
 * 公共JavaScript文件
 * 包含整个博客系统的通用JavaScript功能
 */

/**
 * Ajax请求发送前的全局处理
 * 为所有Ajax请求添加用户token头部信息
 */
$(document).ajaxSend(function (e, xhr, opt) {
    // 从localStorage获取用户token
    let userToken = localStorage.getItem("token");
    // 设置请求头部
    xhr.setRequestHeader("user_token", userToken);
});

/**
 * Ajax请求错误的全局处理
 * 统一处理未授权等错误情况
 */
$(document).ajaxError(function (event, xhr, options, exc) {
    // 处理401未授权错误，重定向到登录页面
    if (xhr.status == 401) {
        location.href = "blog_login.html";
    }
});

/**
 * 获取用户信息并更新页面显示
 * @param {string} url - 获取用户信息的API地址
 */
function getUserInfo(url) {
    $.ajax({
        type: "get",
        url: url,
        success: function (result) {
            if (result.code == 200 && result.data != null) {
                // 更新页面中的用户名和GitHub链接
                $(".left .card h3").text(result.data.userName);
                $(".left .card a").attr("href", result.data.githubUrl);
            } else {
                // 处理获取用户信息失败的情况
                console.error("获取用户信息失败:", result.errMsg);
                // 在页面上显示错误信息
                $(".left .card h3").text("获取用户信息失败");
                $(".left .card a").attr("href", "#");
            }
        },
        error: function (error) {
            console.error("获取用户信息时发生错误:", error);
            // 在页面上显示错误信息
            $(".left .card h3").text("网络错误");
            $(".left .card a").attr("href", "#");
        }
    });
}

/**
 * 用户注销功能
 * 清除本地存储的用户信息并跳转到登录页面
 */
function logout() {
    // 清除localStorage中的用户信息
    localStorage.removeItem("loginUserId");
    localStorage.removeItem("token");
    // 跳转到登录页面
    location.href = "blog_login.html";
}